///**
// * Copyright (c) 2016-2019 人人开源 All rights reserved.
// *
// * https://www.renren.io
// *
// * 版权所有，侵权必究！
// */
//
//package com.expression.common.utils;
//
//import io.jsonwebtoken.Claims;
//import io.jsonwebtoken.Jws;
//import io.jsonwebtoken.Jwts;
//import io.jsonwebtoken.SignatureAlgorithm;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//
//import java.util.Date;
//import java.util.HashMap;
//
///**
// * jwt工具类
// *
// */
//@Slf4j
//@Component
//public class JwtUtils {
//    /**
//     * 生成jwt token
//     */
//    public  String generateToken(long userId) {
//        Date nowDate = new Date();
//        //过期时间
//        Date expireDate = new Date(nowDate.getTime() + AppConstant.EXPIRE_TIME * 1000);
//        HashMap<String,Object> headerParam = new HashMap<>();
//        headerParam.put("typ","JWT");
//
//        return Jwts.builder()
//                .setHeaderParams(headerParam)
//                .setSubject(userId+"")
//                .setIssuedAt(nowDate)
//                .setExpiration(expireDate)
//                .signWith(SignatureAlgorithm.HS512, AppConstant.JWT_SECRET)
//                .compact();
//    }
//
//    public  Jws<Claims> parseToken(String token) {
//        try {
//            return Jwts.parser()
//                    .setSigningKey(AppConstant.JWT_SECRET)
//                    .parseClaimsJws(token);
//        }catch (Exception e){
//            log.info("解析异常:",e);
//            return null;
//        }
//    }
//
//    /**
//     * token是否过期
//     * @return  true：过期
//     */
//    public boolean isTokenExpired(Date expiration) {
//        return expiration.before(new Date());
//    }
//}
